package com.lyj.sc.SecondBruchToReview;

import java.util.ArrayList;
import java.util.List;

/**
 * @program: code-random
 * @description:
 * @author: lyj
 * @create: 2022-08-29 21:00
 **/
public class Solution {

    public static void main(String[] args) {
        System.out.println(byteDancing1(15));
    }

    /**
     * 输入一个正数N，输出所有和为N的连续正数数列
     *       例如：输入15
     *       输出[[1,2,3,4,5],[4,5,6],[7,8]]
     * @param num
     * @return
     */
    public static List<List<Integer>> byteDancing(int num){
        List<List<Integer>> res= new ArrayList<>();
        for(int i=0;i<num/2+1;i++){
            List<Integer> tem = new ArrayList<>();
            int sum=0;
            for(int j=i+1;j<num;j++){
                tem.add(j);
                sum+=j;
                if(sum==num){
                    res.add(tem);
                    break;
                }
                if(sum>num){
                    break;
                }
            }
        }
        return res;
    }

    public static List<List<Integer>> byteDancing1(int num){
        List<List<Integer>> res= new ArrayList<>();
        for(int i=1;i<num/2+1;i++){
            // i = ai
            double n = Math.sqrt(2.0*num+Math.pow(i-0.5,2))-(i-0.5);
            if((int)n == n){
                List<Integer> list= new ArrayList<>();
                for (int j = i; j <i+n ; j++) {
                    list.add(j);
                }
                res.add(list);
            }
        }
        return res;
    }
}
